package org.japo.java.swing.igu;

import java.awt.Font;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.japo.java.basics.entities.Nif;
import org.japo.java.swing.listeners.GEA;

public class IGU extends JFrame {

    private JTextField txfDni;
    private JLabel lblLetra;

    public IGU() throws HeadlessException {
        iniciarComponentes();
    }

    //Referencia a los componentes
    private void iniciarComponentes() {
        //Panel principal
        JPanel pnlPrincipal = new JPanel();
        

        //Fuente
        Font f = new Font("Consolas", Font.BOLD, 40);

        //Eventos de acción
        GEA gea = new GEA(this);

        //Campo de texto
        txfDni = new JTextField("99999999");
        txfDni.setColumns(8);
        txfDni.setFont(f);
        txfDni.setHorizontalAlignment(JTextField.RIGHT);
        txfDni.addActionListener(new GEA(this));
        pnlPrincipal.add(txfDni);
        
        //Guion
        JLabel lblGuion = new JLabel();
        lblGuion.setText("-");
        lblGuion.setFont(f);
        pnlPrincipal.add(lblGuion);

        //Letra
        lblLetra = new JLabel();
        lblLetra.setText("*");
        lblLetra.setFont(f);
        pnlPrincipal.add(lblLetra);
        
        //Ventana
        setContentPane(pnlPrincipal);
        pack();
        setLocationRelativeTo(null);
        setTitle("Campo de texto");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Esto dice que cuando pulses ls X la ventana se cierre
        setResizable(false);
        

    }

    public void procesarNif() {
        try {
            // Coger el texto del dni
            // Convertirlo a numero
            int dni = Integer.parseInt(txfDni.getText());
            // Calcular la letra
            char letra = Nif.calcularLetraNif(dni);
            // Poner la letra en el label
            lblLetra.setText(letra + "");
            
        } catch (Exception e) {
            // Poner la letra especial
            lblLetra.setText("*");
        }
    }
}
